package com.yhao.feign.service;


import com.yhao.feign.bean.User;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient("user-service")//FeignClient的服务名不区分大小写,需要调用的服务名称
//实际使用中为了避免重复声明接口，可以把接口定义在一个项目中去依赖
public interface HelloService {

    //接口名称和调用服务名称的接口统一
    @RequestMapping("/user")
    String hello();

    /**
     * feign中 @RequestParam 和@RequestHeader()的value属性必须指定，负责抛异常
     *
     * @param name
     * @return
     */
    @GetMapping(value = "/user1")
    String hello(@RequestParam("name") String name);

    @GetMapping(value = "/user2")
    User hello(@RequestHeader("name") String name, @RequestHeader("age") int age);

    @RequestMapping(value = "/user3")
    String hello(@RequestBody() User user);


}
